Embodiments of the present invention generally relate to networking and more specifically to techniques for reliably switching from a default multicast distribution tree (MDT) to a data MDT for a multicast stream.
A default MDT is a point-to-multipoint tunnel between provider edge (PE) routers. The default MDT may be used in virtual private network (VPN) to provide multicast traffic to receivers. All PE routers for the VPN join the default MDT. Each PE router may be associated with a receiver. When data for a multicast stream is sent, all receivers for the PE routers receive the multicast stream. A receiver receives the multicast stream even if the receiver is not interested in it.
A data MDT may be used to offload the multicast stream to specific receivers that are interested in receiving the multicast stream. This alleviates receivers from being flooded with data they do not wish to receive. When a switchover to a data MDT is desired, a head-end router sends messages to other PE routers on the default MDT indicating that a switchover to a data MDT will be performed for a specific multicast stream. The signaling from the head-end router is unreliable. Thus, some PE routers may not receive the message. However, making the message reliable is not considered necessary because the head-end router may send another message soon after, such as a minute after.
Receivers that are interested in the multicast stream have their associated PE routers send a response indicating that they would like to join the data MDT. A data MDT is then built based on these requests. Thus, the building of the data MDT is receiver-driven. The head-end router does not know when all receivers that are interested in the multicast stream have actually joined the data MDT (or if receivers have even received the notification of the pending switchover). Also, the head-end router may not even know if a data MDT has been set up. Rather, the switchover is performed without any of this knowledge. Accordingly, this may result in lost packets as receivers that are interested in the multicast stream will not receive the multicast stream.